Add /run/ostree-booted
authorColin Walters <walters@verbum.org>
Fri, 28 Feb 2014 08:48:23 +0000 (03:48 -0500)
committerColin Walters <walters@verbum.org>
Fri, 28 Feb 2014 08:49:25 +0000 (03:49 -0500)
The idea with this is that things like yum should be able to look for
it and determine whether or not they should assume that they can
change things on the system.

https://bugzilla.gnome.org/show_bug.cgi?id=725380

src/switchroot/ostree-prepare-root.c

index 7d6f8d719c07157ace5a9b6c869489264d07fef1..b6b5f4a52efa49c62c667b37022dd023a88d4c5a 100644 (file)
@@ -93,6 +93,23 @@ parse_ostree_cmdline (void)
   return ret;
 }
 
+/* This is an API for other projects to determine whether or not the
+ * currently running system is ostree-controlled.
+ */
+static void
+touch_run_ostree (void)
+{
+  int fd;
+  
+  fd = open ("/run/ostree-booted", O_CREAT | O_WRONLY | O_NOCTTY, 0640);
+  /* We ignore failures here in case /run isn't mounted...not much we
+   * can do about that, but we don't want to fail.
+   */
+  if (fd == -1)
+    return;
+  (void) close (fd);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -189,6 +206,8 @@ main(int argc, char *argv[])
        }
     }
 
+  touch_run_ostree ();
+
   /* This is a bit hacky - move our deployment to /sysroot, since
    * systemd's initrd-switch-root target hardcodes looking for it
    * there.